library(tidyverse)
Registered S3 methods overwritten by 'dbplyr':
  method         from
  print.tbl_lazy     
  print.tbl_sql      
-- Attaching packages -------------------------------------------------------------------- tidyverse 1.3.1 --
√ ggplot2 3.3.5     √ purrr   0.3.4
√ tibble  3.1.6     √ dplyr   1.0.8
√ tidyr   1.2.0     √ stringr 1.4.0
√ readr   2.1.2     √ forcats 0.5.1
-- Conflicts ----------------------------------------------------------------------- tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
library(readxl)
Warning: package ‘readxl’ was built under R version 4.1.3
candy_2015 <- read_excel("../raw_data/boing-boing-candy-2015.xlsx")
candy_2016 <- read_excel("../raw_data/boing-boing-candy-2016.xlsx")
candy_2017 <- read_excel("../raw_data/boing-boing-candy-2017.xlsx")
New names:
* `` -> ...114
here::here()
[1] "C:/Users/mahri/OneDrive/CodeClan/dirty_data_project/dirty_data_codeclan_project_mahri/dirty_data_task_4_mahri"

From glimpse

head(candy_2015)
glimpse(candy_2016)
Rows: 1,259
Columns: 123
$ Timestamp                                                                                                                                   <dttm> ~
$ `Are you going actually going trick or treating yourself?`                                                                                  <chr> ~
$ `Your gender:`                                                                                                                              <chr> ~
$ `How old are you?`                                                                                                                          <chr> ~
$ `Which country do you live in?`                                                                                                             <chr> ~
$ `Which state, province, county do you live in?`                                                                                             <chr> ~
$ `[100 Grand Bar]`                                                                                                                           <chr> ~
$ `[Anonymous brown globs that come in black and orange wrappers]`                                                                            <chr> ~
$ `[Any full-sized candy bar]`                                                                                                                <chr> ~
$ `[Black Jacks]`                                                                                                                             <chr> ~
$ `[Bonkers (the candy)]`                                                                                                                     <chr> ~
$ `[Bonkers (the board game)]`                                                                                                                <chr> ~
$ `[Bottle Caps]`                                                                                                                             <chr> ~
$ `[Box'o'Raisins]`                                                                                                                           <chr> ~
$ `[Broken glow stick]`                                                                                                                       <chr> ~
$ `[Butterfinger]`                                                                                                                            <chr> ~
$ `[Cadbury Creme Eggs]`                                                                                                                      <chr> ~
$ `[Candy Corn]`                                                                                                                              <chr> ~
$ `[Candy that is clearly just the stuff given out for free at restaurants]`                                                                  <chr> ~
$ `[Caramellos]`                                                                                                                              <chr> ~
$ `[Cash, or other forms of legal tender]`                                                                                                    <chr> ~
$ `[Chardonnay]`                                                                                                                              <chr> ~
$ `[Chick-o-Sticks (we don’t know what that is)]`                                                                                             <chr> ~
$ `[Chiclets]`                                                                                                                                <chr> ~
$ `[Coffee Crisp]`                                                                                                                            <chr> ~
$ `[Creepy Religious comics/Chick Tracts]`                                                                                                    <chr> ~
$ `[Dental paraphenalia]`                                                                                                                     <chr> ~
$ `[Dots]`                                                                                                                                    <chr> ~
$ `[Dove Bars]`                                                                                                                               <chr> ~
$ `[Fuzzy Peaches]`                                                                                                                           <chr> ~
$ `[Generic Brand Acetaminophen]`                                                                                                             <chr> ~
$ `[Glow sticks]`                                                                                                                             <chr> ~
$ `[Goo Goo Clusters]`                                                                                                                        <chr> ~
$ `[Good N' Plenty]`                                                                                                                          <chr> ~
$ `[Gum from baseball cards]`                                                                                                                 <chr> ~
$ `[Gummy Bears straight up]`                                                                                                                 <chr> ~
$ `[Hard Candy]`                                                                                                                              <chr> ~
$ `[Healthy Fruit]`                                                                                                                           <chr> ~
$ `[Heath Bar]`                                                                                                                               <chr> ~
$ `[Hershey's Dark Chocolate]`                                                                                                                <chr> ~
$ `[Hershey’s Milk Chocolate]`                                                                                                                <chr> ~
$ `[Hershey's Kisses]`                                                                                                                        <chr> ~
$ `[Hugs (actual physical hugs)]`                                                                                                             <chr> ~
$ `[Jolly Rancher (bad flavor)]`                                                                                                              <chr> ~
$ `[Jolly Ranchers (good flavor)]`                                                                                                            <chr> ~
$ `[JoyJoy (Mit Iodine!)]`                                                                                                                    <chr> ~
$ `[Junior Mints]`                                                                                                                            <chr> ~
$ `[Senior Mints]`                                                                                                                            <chr> ~
$ `[Kale smoothie]`                                                                                                                           <chr> ~
$ `[Kinder Happy Hippo]`                                                                                                                      <chr> ~
$ `[Kit Kat]`                                                                                                                                 <chr> ~
$ `[LaffyTaffy]`                                                                                                                              <chr> ~
$ `[LemonHeads]`                                                                                                                              <chr> ~
$ `[Licorice (not black)]`                                                                                                                    <chr> ~
$ `[Licorice (yes black)]`                                                                                                                    <chr> ~
$ `[Lindt Truffle]`                                                                                                                           <chr> ~
$ `[Lollipops]`                                                                                                                               <chr> ~
$ `[Mars]`                                                                                                                                    <chr> ~
$ `[Mary Janes]`                                                                                                                              <chr> ~
$ `[Maynards]`                                                                                                                                <chr> ~
$ `[Mike and Ike]`                                                                                                                            <chr> ~
$ `[Milk Duds]`                                                                                                                               <chr> ~
$ `[Milky Way]`                                                                                                                               <chr> ~
$ `[Regular M&Ms]`                                                                                                                            <chr> ~
$ `[Peanut M&M’s]`                                                                                                                            <chr> ~
$ `[Blue M&M's]`                                                                                                                              <chr> ~
$ `[Red M&M's]`                                                                                                                               <chr> ~
$ `[Third Party M&M's]`                                                                                                                       <chr> ~
$ `[Minibags of chips]`                                                                                                                       <chr> ~
$ `[Mint Kisses]`                                                                                                                             <chr> ~
$ `[Mint Juleps]`                                                                                                                             <chr> ~
$ `[Mr. Goodbar]`                                                                                                                             <chr> ~
$ `[Necco Wafers]`                                                                                                                            <chr> ~
$ `[Nerds]`                                                                                                                                   <chr> ~
$ `[Nestle Crunch]`                                                                                                                           <chr> ~
$ `[Now'n'Laters]`                                                                                                                            <chr> ~
$ `[Peeps]`                                                                                                                                   <chr> ~
$ `[Pencils]`                                                                                                                                 <chr> ~
$ `[Person of Interest Season 3 DVD Box Set (not including Disc 4 with hilarious outtakes)]`                                                  <chr> ~
$ `[Pixy Stix]`                                                                                                                               <chr> ~
$ `[Reese’s Peanut Butter Cups]`                                                                                                              <chr> ~
$ `[Reese's Pieces]`                                                                                                                          <chr> ~
$ `[Reggie Jackson Bar]`                                                                                                                      <chr> ~
$ `[Rolos]`                                                                                                                                   <chr> ~
$ `[Skittles]`                                                                                                                                <chr> ~
$ `[Smarties (American)]`                                                                                                                     <chr> ~
$ `[Smarties (Commonwealth)]`                                                                                                                 <chr> ~
$ `[Snickers]`                                                                                                                                <chr> ~
$ `[Sourpatch Kids (i.e. abominations of nature)]`                                                                                            <chr> ~
$ `[Spotted Dick]`                                                                                                                            <chr> ~
$ `[Starburst]`                                                                                                                               <chr> ~
$ `[Sweet Tarts]`                                                                                                                             <chr> ~
$ `[Swedish Fish]`                                                                                                                            <chr> ~
$ `[Sweetums (a friend to diabetes)]`                                                                                                         <chr> ~
$ `[Tic Tacs]`                                                                                                                                <chr> ~
$ `[Those odd marshmallow circus peanut things]`                                                                                              <chr> ~
$ `[Three Musketeers]`                                                                                                                        <chr> ~
$ `[Tolberone something or other]`                                                                                                            <chr> ~
$ `[Trail Mix]`                                                                                                                               <chr> ~
$ `[Twix]`                                                                                                                                    <chr> ~
$ `[Vials of pure high fructose corn syrup, for main-lining into your vein]`                                                                  <chr> ~
$ `[Vicodin]`                                                                                                                                 <chr> ~
$ `[Whatchamacallit Bars]`                                                                                                                    <chr> ~
$ `[White Bread]`                                                                                                                             <chr> ~
$ `[Whole Wheat anything]`                                                                                                                    <chr> ~
$ `[York Peppermint Patties]`                                                                                                                 <chr> ~
$ `Please list any items not included above that give you JOY.`                                                                               <chr> ~
$ `Please list any items not included above that give you DESPAIR.`                                                                           <chr> ~
$ `Please leave any witty, snarky or thoughtful remarks or comments regarding your choices.`                                                  <chr> ~
$ `Guess the number of mints in my hand.`                                                                                                     <chr> ~
$ `Betty or Veronica?`                                                                                                                        <chr> ~
$ `"That dress* that went viral a few years back - when I first saw it, it was ________"`                                                     <chr> ~
$ `What is your favourite font?`                                                                                                              <chr> ~
$ `Please estimate the degree(s) of separation you have from the following celebrities [JK Rowling]`                                          <chr> ~
$ `Please estimate the degree(s) of separation you have from the following celebrities [JJ Abrams]`                                           <chr> ~
$ `Please estimate the degree(s) of separation you have from the following celebrities [Beyoncé]`                                             <chr> ~
$ `Please estimate the degree(s) of separation you have from the following celebrities [Bieber]`                                              <chr> ~
$ `Please estimate the degree(s) of separation you have from the following celebrities [Kevin Bacon]`                                         <chr> ~
$ `Please estimate the degree(s) of separation you have from the following celebrities [Francis Bacon (1561 - 1626)]`                         <chr> ~
$ `Which day do you prefer, Friday or Sunday?`                                                                                                <chr> ~
$ `Do you eat apples the correct way, East to West (side to side) or do you eat them like a freak of nature, South to North (bottom to top)?` <chr> ~
$ `When you see the above image of the 4 different websites, which one would you most likely check out (please be honest).`                   <chr> ~
$ `[York Peppermint Patties] Ignore`                                                                                                          <lgl> ~
glimpse(candy_2017)
Rows: 2,460
Columns: 120
$ `Internal ID`                                                                            <dbl> 90258773, ~
$ `Q1: GOING OUT?`                                                                         <chr> NA, "No", ~
$ `Q2: GENDER`                                                                             <chr> NA, "Male"~
$ `Q3: AGE`                                                                                <chr> NA, "44", ~
$ `Q4: COUNTRY`                                                                            <chr> NA, "USA",~
$ `Q5: STATE, PROVINCE, COUNTY, ETC`                                                       <chr> NA, "NM", ~
$ `Q6 | 100 Grand Bar`                                                                     <chr> NA, "MEH",~
$ `Q6 | Anonymous brown globs that come in black and orange wrappers\t(a.k.a. Mary Janes)` <chr> NA, "DESPA~
$ `Q6 | Any full-sized candy bar`                                                          <chr> NA, "JOY",~
$ `Q6 | Black Jacks`                                                                       <chr> NA, "MEH",~
$ `Q6 | Bonkers (the candy)`                                                               <chr> NA, "DESPA~
$ `Q6 | Bonkers (the board game)`                                                          <chr> NA, "DESPA~
$ `Q6 | Bottle Caps`                                                                       <chr> NA, "DESPA~
$ `Q6 | Box'o'Raisins`                                                                     <chr> NA, "DESPA~
$ `Q6 | Broken glow stick`                                                                 <chr> NA, "DESPA~
$ `Q6 | Butterfinger`                                                                      <chr> NA, "DESPA~
$ `Q6 | Cadbury Creme Eggs`                                                                <chr> NA, "MEH",~
$ `Q6 | Candy Corn`                                                                        <chr> NA, "MEH",~
$ `Q6 | Candy that is clearly just the stuff given out for free at restaurants`            <chr> NA, "DESPA~
$ `Q6 | Caramellos`                                                                        <chr> NA, "MEH",~
$ `Q6 | Cash, or other forms of legal tender`                                              <chr> NA, "JOY",~
$ `Q6 | Chardonnay`                                                                        <chr> NA, "MEH",~
$ `Q6 | Chick-o-Sticks (we don’t know what that is)`                                       <chr> NA, "DESPA~
$ `Q6 | Chiclets`                                                                          <chr> NA, "DESPA~
$ `Q6 | Coffee Crisp`                                                                      <chr> NA, "DESPA~
$ `Q6 | Creepy Religious comics/Chick Tracts`                                              <chr> NA, "DESPA~
$ `Q6 | Dental paraphenalia`                                                               <chr> NA, "DESPA~
$ `Q6 | Dots`                                                                              <chr> NA, "MEH",~
$ `Q6 | Dove Bars`                                                                         <chr> NA, "JOY",~
$ `Q6 | Fuzzy Peaches`                                                                     <chr> NA, "DESPA~
$ `Q6 | Generic Brand Acetaminophen`                                                       <chr> NA, "DESPA~
$ `Q6 | Glow sticks`                                                                       <chr> NA, "DESPA~
$ `Q6 | Goo Goo Clusters`                                                                  <chr> NA, "DESPA~
$ `Q6 | Good N' Plenty`                                                                    <chr> NA, "MEH",~
$ `Q6 | Gum from baseball cards`                                                           <chr> NA, "DESPA~
$ `Q6 | Gummy Bears straight up`                                                           <chr> NA, "MEH",~
$ `Q6 | Hard Candy`                                                                        <chr> NA, "MEH",~
$ `Q6 | Healthy Fruit`                                                                     <chr> NA, "DESPA~
$ `Q6 | Heath Bar`                                                                         <chr> NA, "MEH",~
$ `Q6 | Hershey's Dark Chocolate`                                                          <chr> NA, "JOY",~
$ `Q6 | Hershey’s Milk Chocolate`                                                          <chr> NA, "JOY",~
$ `Q6 | Hershey's Kisses`                                                                  <chr> NA, "MEH",~
$ `Q6 | Hugs (actual physical hugs)`                                                       <chr> NA, "DESPA~
$ `Q6 | Jolly Rancher (bad flavor)`                                                        <chr> NA, "DESPA~
$ `Q6 | Jolly Ranchers (good flavor)`                                                      <chr> NA, "MEH",~
$ `Q6 | JoyJoy (Mit Iodine!)`                                                              <chr> NA, "DESPA~
$ `Q6 | Junior Mints`                                                                      <chr> NA, "DESPA~
$ `Q6 | Senior Mints`                                                                      <chr> NA, "DESPA~
$ `Q6 | Kale smoothie`                                                                     <chr> NA, "DESPA~
$ `Q6 | Kinder Happy Hippo`                                                                <chr> NA, "DESPA~
$ `Q6 | Kit Kat`                                                                           <chr> NA, "JOY",~
$ `Q6 | LaffyTaffy`                                                                        <chr> NA, "DESPA~
$ `Q6 | LemonHeads`                                                                        <chr> NA, "MEH",~
$ `Q6 | Licorice (not black)`                                                              <chr> NA, "MEH",~
$ `Q6 | Licorice (yes black)`                                                              <chr> NA, "JOY",~
$ `Q6 | Lindt Truffle`                                                                     <chr> NA, "MEH",~
$ `Q6 | Lollipops`                                                                         <chr> NA, "DESPA~
$ `Q6 | Mars`                                                                              <chr> NA, "DESPA~
$ `Q6 | Maynards`                                                                          <chr> NA, "DESPA~
$ `Q6 | Mike and Ike`                                                                      <chr> NA, "MEH",~
$ `Q6 | Milk Duds`                                                                         <chr> NA, "MEH",~
$ `Q6 | Milky Way`                                                                         <chr> NA, "JOY",~
$ `Q6 | Regular M&Ms`                                                                      <chr> NA, "JOY",~
$ `Q6 | Peanut M&M’s`                                                                      <chr> NA, "MEH",~
$ `Q6 | Blue M&M's`                                                                        <chr> NA, "JOY",~
$ `Q6 | Red M&M's`                                                                         <chr> NA, "JOY",~
$ `Q6 | Green Party M&M's`                                                                 <chr> NA, "JOY",~
$ `Q6 | Independent M&M's`                                                                 <chr> NA, "JOY",~
$ `Q6 | Abstained from M&M'ing.`                                                           <chr> NA, "DESPA~
$ `Q6 | Minibags of chips`                                                                 <chr> NA, "DESPA~
$ `Q6 | Mint Kisses`                                                                       <chr> NA, "MEH",~
$ `Q6 | Mint Juleps`                                                                       <chr> NA, "DESPA~
$ `Q6 | Mr. Goodbar`                                                                       <chr> NA, "DESPA~
$ `Q6 | Necco Wafers`                                                                      <chr> NA, "DESPA~
$ `Q6 | Nerds`                                                                             <chr> NA, "DESPA~
$ `Q6 | Nestle Crunch`                                                                     <chr> NA, "JOY",~
$ `Q6 | Now'n'Laters`                                                                      <chr> NA, "DESPA~
$ `Q6 | Peeps`                                                                             <chr> NA, "DESPA~
$ `Q6 | Pencils`                                                                           <chr> NA, "DESPA~
$ `Q6 | Pixy Stix`                                                                         <chr> NA, "DESPA~
$ `Q6 | Real Housewives of Orange County Season 9 Blue-Ray`                                <chr> NA, "DESPA~
$ `Q6 | Reese’s Peanut Butter Cups`                                                        <chr> NA, "JOY",~
$ `Q6 | Reese's Pieces`                                                                    <chr> NA, "JOY",~
$ `Q6 | Reggie Jackson Bar`                                                                <chr> NA, "DESPA~
$ `Q6 | Rolos`                                                                             <chr> NA, "JOY",~
$ `Q6 | Sandwich-sized bags filled with BooBerry Crunch`                                   <chr> NA, "DESPA~
$ `Q6 | Skittles`                                                                          <chr> NA, "DESPA~
$ `Q6 | Smarties (American)`                                                               <chr> NA, "DESPA~
$ `Q6 | Smarties (Commonwealth)`                                                           <chr> NA, "DESPA~
$ `Q6 | Snickers`                                                                          <chr> NA, "MEH",~
$ `Q6 | Sourpatch Kids (i.e. abominations of nature)`                                      <chr> NA, "DESPA~
$ `Q6 | Spotted Dick`                                                                      <chr> NA, "DESPA~
$ `Q6 | Starburst`                                                                         <chr> NA, "MEH",~
$ `Q6 | Sweet Tarts`                                                                       <chr> NA, "DESPA~
$ `Q6 | Swedish Fish`                                                                      <chr> NA, "MEH",~
$ `Q6 | Sweetums (a friend to diabetes)`                                                   <chr> NA, "DESPA~
$ `Q6 | Take 5`                                                                            <chr> NA, "DESPA~
$ `Q6 | Tic Tacs`                                                                          <chr> NA, "DESPA~
$ `Q6 | Those odd marshmallow circus peanut things`                                        <chr> NA, "DESPA~
$ `Q6 | Three Musketeers`                                                                  <chr> NA, "JOY",~
$ `Q6 | Tolberone something or other`                                                      <chr> NA, "JOY",~
$ `Q6 | Trail Mix`                                                                         <chr> NA, "DESPA~
$ `Q6 | Twix`                                                                              <chr> NA, "JOY",~
$ `Q6 | Vials of pure high fructose corn syrup, for main-lining into your vein`            <chr> NA, "DESPA~
$ `Q6 | Vicodin`                                                                           <chr> NA, "DESPA~
$ `Q6 | Whatchamacallit Bars`                                                              <chr> NA, "DESPA~
$ `Q6 | White Bread`                                                                       <chr> NA, "DESPA~
$ `Q6 | Whole Wheat anything`                                                              <chr> NA, "DESPA~
$ `Q6 | York Peppermint Patties`                                                           <chr> NA, "DESPA~
$ `Q7: JOY OTHER`                                                                          <chr> NA, "Mound~
$ `Q8: DESPAIR OTHER`                                                                      <chr> NA, NA, NA~
$ `Q9: OTHER COMMENTS`                                                                     <chr> NA, "Botto~
$ `Q10: DRESS`                                                                             <chr> NA, "White~
$ ...114                                                                                   <chr> NA, NA, NA~
$ `Q11: DAY`                                                                               <chr> NA, "Sunda~
$ `Q12: MEDIA [Daily Dish]`                                                                <dbl> NA, NA, NA~
$ `Q12: MEDIA [Science]`                                                                   <dbl> NA, 1, NA,~
$ `Q12: MEDIA [ESPN]`                                                                      <dbl> NA, NA, NA~
$ `Q12: MEDIA [Yahoo]`                                                                     <dbl> NA, NA, NA~
$ `Click Coordinates (x, y)`                                                               <chr> NA, "(84, ~
library(janitor)

Attaching package: ‘janitor’

The following objects are masked from ‘package:stats’:

    chisq.test, fisher.test

janitor_candy_2015 <- janitor::clean_names(candy_2015)
janitor_candy_2015

janitor_candy_2016 <- janitor::clean_names(candy_2016)
janitor_candy_2016

janitor_candy_2017 <- janitor::clean_names(candy_2017)
janitor_candy_2017

just looking at who is reporting back about these ones…


janitor_candy_2017 %>% 
  select(q3_age, q2_gender, q6_independent_m_ms, q6_green_party_m_ms)

janitor_candy_2016 %>% 
  select(york_peppermint_patties_ignore)
#nobody 

2015 clean - remove columns that aren’t candy (see readme) I went from bottom to top to check index as i went Also adding a “year” column and removing “timestamp” for the join (see if can work out extracting year from timestamp and moving over later). Doing this after so that column index isn’t ruined

names(janitor_candy_2015)
  [1] "timestamp"                                                                                                 
  [2] "how_old_are_you"                                                                                           
  [3] "are_you_going_actually_going_trick_or_treating_yourself"                                                   
  [4] "butterfinger"                                                                                              
  [5] "x100_grand_bar"                                                                                            
  [6] "anonymous_brown_globs_that_come_in_black_and_orange_wrappers"                                              
  [7] "any_full_sized_candy_bar"                                                                                  
  [8] "black_jacks"                                                                                               
  [9] "bonkers"                                                                                                   
 [10] "bottle_caps"                                                                                               
 [11] "box_o_raisins"                                                                                             
 [12] "brach_products_not_including_candy_corn"                                                                   
 [13] "bubble_gum"                                                                                                
 [14] "cadbury_creme_eggs"                                                                                        
 [15] "candy_corn"                                                                                                
 [16] "vials_of_pure_high_fructose_corn_syrup_for_main_lining_into_your_vein"                                     
 [17] "candy_that_is_clearly_just_the_stuff_given_out_for_free_at_restaurants"                                    
 [18] "cash_or_other_forms_of_legal_tender"                                                                       
 [19] "chiclets"                                                                                                  
 [20] "caramellos"                                                                                                
 [21] "snickers"                                                                                                  
 [22] "dark_chocolate_hershey"                                                                                    
 [23] "dental_paraphenalia"                                                                                       
 [24] "dots"                                                                                                      
 [25] "fuzzy_peaches"                                                                                             
 [26] "generic_brand_acetaminophen"                                                                               
 [27] "glow_sticks"                                                                                               
 [28] "broken_glow_stick"                                                                                         
 [29] "goo_goo_clusters"                                                                                          
 [30] "good_n_plenty"                                                                                             
 [31] "gum_from_baseball_cards"                                                                                   
 [32] "gummy_bears_straight_up"                                                                                   
 [33] "creepy_religious_comics_chick_tracts"                                                                      
 [34] "healthy_fruit"                                                                                             
 [35] "heath_bar"                                                                                                 
 [36] "hershey_s_kissables"                                                                                       
 [37] "hershey_s_milk_chocolate"                                                                                  
 [38] "hugs_actual_physical_hugs"                                                                                 
 [39] "jolly_rancher_bad_flavor"                                                                                  
 [40] "jolly_ranchers_good_flavor"                                                                                
 [41] "kale_smoothie"                                                                                             
 [42] "kinder_happy_hippo"                                                                                        
 [43] "kit_kat"                                                                                                   
 [44] "hard_candy"                                                                                                
 [45] "lapel_pins"                                                                                                
 [46] "lemon_heads"                                                                                               
 [47] "licorice"                                                                                                  
 [48] "licorice_not_black"                                                                                        
 [49] "lindt_truffle"                                                                                             
 [50] "lollipops"                                                                                                 
 [51] "mars"                                                                                                      
 [52] "mary_janes"                                                                                                
 [53] "maynards"                                                                                                  
 [54] "milk_duds"                                                                                                 
 [55] "laffy_taffy"                                                                                               
 [56] "minibags_of_chips"                                                                                         
 [57] "joy_joy_mit_iodine"                                                                                        
 [58] "reggie_jackson_bar"                                                                                        
 [59] "pixy_stix"                                                                                                 
 [60] "nerds"                                                                                                     
 [61] "nestle_crunch"                                                                                             
 [62] "nown_laters"                                                                                               
 [63] "pencils"                                                                                                   
 [64] "milky_way"                                                                                                 
 [65] "reese_s_peanut_butter_cups"                                                                                
 [66] "tolberone_something_or_other"                                                                              
 [67] "runts"                                                                                                     
 [68] "junior_mints"                                                                                              
 [69] "senior_mints"                                                                                              
 [70] "mint_kisses"                                                                                               
 [71] "mint_juleps"                                                                                               
 [72] "mint_leaves"                                                                                               
 [73] "peanut_m_m_s"                                                                                              
 [74] "regular_m_ms"                                                                                              
 [75] "mint_m_ms"                                                                                                 
 [76] "ribbon_candy"                                                                                              
 [77] "rolos"                                                                                                     
 [78] "skittles"                                                                                                  
 [79] "smarties_american"                                                                                         
 [80] "smarties_commonwealth"                                                                                     
 [81] "chick_o_sticks_we_don_t_know_what_that_is"                                                                 
 [82] "spotted_dick"                                                                                              
 [83] "starburst"                                                                                                 
 [84] "swedish_fish"                                                                                              
 [85] "sweetums"                                                                                                  
 [86] "those_odd_marshmallow_circus_peanut_things"                                                                
 [87] "three_musketeers"                                                                                          
 [88] "peterson_brand_sidewalk_chalk"                                                                             
 [89] "peanut_butter_bars"                                                                                        
 [90] "peanut_butter_jars"                                                                                        
 [91] "trail_mix"                                                                                                 
 [92] "twix"                                                                                                      
 [93] "vicodin"                                                                                                   
 [94] "white_bread"                                                                                               
 [95] "whole_wheat_anything"                                                                                      
 [96] "york_peppermint_patties"                                                                                   
 [97] "please_leave_any_remarks_or_comments_regarding_your_choices"                                               
 [98] "please_list_any_items_not_included_above_that_give_you_joy"                                                
 [99] "please_list_any_items_not_included_above_that_give_you_despair"                                            
[100] "guess_the_number_of_mints_in_my_hand"                                                                      
[101] "betty_or_veronica"                                                                                         
[102] "check_all_that_apply_i_cried_tears_of_sadness_at_the_end_of"                                               
[103] "that_dress_that_went_viral_early_this_year_when_i_first_saw_it_it_was"                                     
[104] "fill_in_the_blank_taylor_swift_is_a_force_for"                                                             
[105] "what_is_your_favourite_font"                                                                               
[106] "if_you_squint_really_hard_the_words_intelligent_design_would_look_like"                                    
[107] "fill_in_the_blank_imitation_is_a_form_of"                                                                  
[108] "please_estimate_the_degree_s_of_separation_you_have_from_the_following_celebrities_jk_rowling"             
[109] "please_estimate_the_degree_s_of_separation_you_have_from_the_following_celebrities_jj_abrams"              
[110] "please_estimate_the_degree_s_of_separation_you_have_from_the_following_celebrities_beyonce"                
[111] "please_estimate_the_degree_s_of_separation_you_have_from_the_following_celebrities_bieber"                 
[112] "please_estimate_the_degree_s_of_separation_you_have_from_the_following_celebrities_kevin_bacon"            
[113] "please_estimate_the_degree_s_of_separation_you_have_from_the_following_celebrities_francis_bacon_1561_1626"
[114] "sea_salt_flavored_stuff_probably_chocolate_since_this_is_the_it_flavor_of_the_year"                        
[115] "necco_wafers"                                                                                              
[116] "which_day_do_you_prefer_friday_or_sunday"                                                                  
[117] "please_estimate_the_degrees_of_separation_you_have_from_the_following_folks_bruce_lee"                     
[118] "please_estimate_the_degrees_of_separation_you_have_from_the_following_folks_jk_rowling"                    
[119] "please_estimate_the_degrees_of_separation_you_have_from_the_following_folks_malala_yousafzai"              
[120] "please_estimate_the_degrees_of_separation_you_have_from_the_following_folks_thom_yorke"                    
[121] "please_estimate_the_degrees_of_separation_you_have_from_the_following_folks_jj_abrams"                     
[122] "please_estimate_the_degrees_of_separation_you_have_from_the_following_folks_hillary_clinton"               
[123] "please_estimate_the_degrees_of_separation_you_have_from_the_following_folks_donald_trump"                  
[124] "please_estimate_the_degrees_of_separation_you_have_from_the_following_folks_beyonce_knowles"               
col_removed_candy_2015 <- janitor_candy_2015 %>% 
  select(-c(116:124), -c(97:113), -c(93:95), -c(90, 91), -c(peterson_brand_sidewalk_chalk, spotted_dick, mint_leaves, joy_joy_mit_iodine, minibags_of_chips, lapel_pins, kale_smoothie, hugs_actual_physical_hugs, heath_bar, healthy_fruit, creepy_religious_comics_chick_tracts, broken_glow_stick, glow_sticks, generic_brand_acetaminophen, dental_paraphenalia, cash_or_other_forms_of_legal_tender, vials_of_pure_high_fructose_corn_syrup_for_main_lining_into_your_vein, box_o_raisins, timestamp)) %>% 
  add_column(year = "2015", .before = 1)
  

col_removed_candy_2015
#view(col_removed_candy_2015)

2015 clean - renaming columns so they match other years considered merging anonymous brown globs with mary janes (in 2017 it is “anon brown… aka Mary Janes”) but looking at responses, they don’t match up so I’ll leave as anonymous_black_and_orange_wrappers…

col_removed_candy_2015 %>% 
  select(anonymous_brown_globs_that_come_in_black_and_orange_wrappers, mary_janes)

candy_2015_renamed <- col_removed_candy_2015 %>% 
  rename(age = how_old_are_you, trick_or_treating = are_you_going_actually_going_trick_or_treating_yourself, anonymous_black_and_orange_wrapper = anonymous_brown_globs_that_come_in_black_and_orange_wrappers, brach_not_including_candy_corn = brach_products_not_including_candy_corn, restaurant_candy = candy_that_is_clearly_just_the_stuff_given_out_for_free_at_restaurants, hersheys_dark_chocolate = dark_chocolate_hershey, gummy_bears = gummy_bears_straight_up, hersheys_kissables = hershey_s_kissables, hersheys_milk_chocolate = hershey_s_milk_chocolate, licorice_black = licorice, reeses_peanut_butter_cups = reese_s_peanut_butter_cups, toblerone = tolberone_something_or_other, peanut_m_ms = peanut_m_m_s, chick_o_stick = chick_o_sticks_we_don_t_know_what_that_is, circus_peanuts = those_odd_marshmallow_circus_peanut_things, sea_salt_chocolate = sea_salt_flavored_stuff_probably_chocolate_since_this_is_the_it_flavor_of_the_year)

2016 clean - remove unnecessary columns - bottom to top Also adding a year column for the binding of rows

col_removed_candy_2016 <- janitor_candy_2016 %>% 

  select(-c(104, 105, 107:123), -c(vicodin, vials_of_pure_high_fructose_corn_syrup_for_main_lining_into_your_vein, trail_mix, spotted_dick, person_of_interest_season_3_dvd_box_set_not_including_disc_4_with_hilarious_outtakes, minibags_of_chips, kale_smoothie, joy_joy_mit_iodine, hugs_actual_physical_hugs, heath_bar, healthy_fruit, glow_sticks, generic_brand_acetaminophen, dental_paraphenalia, creepy_religious_comics_chick_tracts, chardonnay, cash_or_other_forms_of_legal_tender, broken_glow_stick, boxo_raisins, bonkers_the_board_game, timestamp)) %>% 
  add_column(year = "2016", .before = 1)

2016 - rename so they match other sheets considered merging anonymous brown globs with mary janes (in 2017 it is “anon brown… aka Mary Janes”) but looking at responses, they don’t match up so I’ll leave as anonymous_black_and_orange_wrappers…


col_removed_candy_2016 %>% 
  select(anonymous_brown_globs_that_come_in_black_and_orange_wrappers, mary_janes)

candy_2016_renamed <- col_removed_candy_2016 %>% 
  rename(trick_or_treating = are_you_going_actually_going_trick_or_treating_yourself, gender = your_gender, age = how_old_are_you, country = which_country_do_you_live_in, state_or_prov = which_state_province_county_do_you_live_in, anonymous_black_and_orange_wrapper = anonymous_brown_globs_that_come_in_black_and_orange_wrappers, bonkers = bonkers_the_candy, restaurant_candy = candy_that_is_clearly_just_the_stuff_given_out_for_free_at_restaurants, chick_o_stick = chick_o_sticks_we_don_t_know_what_that_is, gummy_bears = gummy_bears_straight_up, hersheys_milk_chocolate = hershey_s_milk_chocolate, licorice_black = licorice_yes_black, peanut_m_ms = peanut_m_m_s, party_bag_m_ms = third_party_m_ms, reeses_peanut_butter_cups = reese_s_peanut_butter_cups, sourpatch_kids = sourpatch_kids_i_e_abominations_of_nature, sweetarts = sweet_tarts, sweetums = sweetums_a_friend_to_diabetes, circus_peanuts = those_odd_marshmallow_circus_peanut_things, toblerone = tolberone_something_or_other)

candy_2016_renamed
NA

2017 clean - remove those not candy and internal id as others don’t have Also adding a year column for the join

col_removed_candy_2017 <- janitor_candy_2017 %>%  
  select(-c(102, 104, 105, 107, 108, 110:120), -c(q6_spotted_dick, q6_sandwich_sized_bags_filled_with_boo_berry_crunch, q6_real_housewives_of_orange_county_season_9_blue_ray, q6_minibags_of_chips, q6_abstained_from_m_ming, q6_kale_smoothie, q6_joy_joy_mit_iodine, q6_hugs_actual_physical_hugs, q6_heath_bar, q6_healthy_fruit, q6_glow_sticks, q6_generic_brand_acetaminophen, q6_dental_paraphenalia, q6_creepy_religious_comics_chick_tracts, q6_chardonnay, q6_cash_or_other_forms_of_legal_tender, q6_broken_glow_stick, q6_boxo_raisins, q6_bonkers_the_board_game, internal_id)) %>% 
  add_column(year = "2017", .before = 1)

col_removed_candy_2017

2017 - rename - get rid of q1/2/3/4/5/6 at the start of col names and rename to match 2015 and 16


candy_2017_q_removed <- col_removed_candy_2017 %>% 
  rename_all(~ sub("^[a-z0-9]{2}_", "", 
                   make.names(names(col_removed_candy_2017))))

candy_2017_renamed <- candy_2017_q_removed %>% 
  rename(trick_or_treating = going_out, state_or_prov = state_province_county_etc, x100_grand_bar = `100_grand_bar`, mary_janes = anonymous_brown_globs_that_come_in_black_and_orange_wrappers_a_k_a_mary_janes, bonkers = bonkers_the_candy, restaurant_candy = candy_that_is_clearly_just_the_stuff_given_out_for_free_at_restaurants, chick_o_stick = chick_o_sticks_we_don_t_know_what_that_is, gummy_bears = gummy_bears_straight_up, hersheys_milk_chocolate = hershey_s_milk_chocolate, licorice_black = licorice_yes_black, peanut_m_ms = peanut_m_m_s, green_m_ms = green_party_m_ms, lone_m_ms = independent_m_ms, reeses_peanut_butter_cups = reese_s_peanut_butter_cups, sourpatch_kids = sourpatch_kids_i_e_abominations_of_nature, sweetarts = sweet_tarts, sweetums = sweetums_a_friend_to_diabetes, circus_peanuts = those_odd_marshmallow_circus_peanut_things, toblerone = tolberone_something_or_other)
  
candy_2017_renamed
view(candy_2015_renamed)
view(candy_2016_renamed)
view(candy_2017_renamed)

Getting an idea of people’s responses:


distinct(candy_2015_renamed, age) #(chr...) 146 responses, some silly and some strange
distinct(candy_2015_renamed, trick_or_treating) # yes or no (chr)
distinct(candy_2015_renamed, starburst)


distinct(candy_2016_renamed, age) #chr 98 incl silly/strange
distinct(candy_2016_renamed, trick_or_treating) #Yes No (chr)
distinct(candy_2016_renamed, gender) #Male, Female, Other, I'd rather not say, NA
distinct(candy_2016_renamed, country) #93 some silly, some e.g. USA, US, us, u.s.a. etc 
distinct(candy_2016_renamed, starburst)


distinct(candy_2017_renamed, age) #chr 107 incl silly/strange
distinct(candy_2017_renamed, trick_or_treating) #Yes No and NA(chr)
distinct(candy_2017_renamed, gender) #Male, Female, Other, I'd rather not say, NA
distinct(candy_2017_renamed, country) #118 some silly, some e.g. USA, US, us, u.s.a. etc 
distinct(candy_2017_renamed, starburst)

—————- COUNTRY CLEANING ————————–

Note that 2015 (5630 rows of 9349) has no country data…

candy_2016_renamed %>% 
  filter(is.na(country))
#21 NA

candy_2017_renamed %>% 
  filter(is.na(country)) 
# 64 NA
#just to see that there are the right amount of NAs 
#country_cleaning <- bound_candy %>% 
 # select(country, state_or_prov) %>% 
  #filter(!is.na(country))
# 3634 rows remain with NAs gone... 
#view(country_cleaning)

# first... remove punctuation
library(stringr)

2016


country_clean_2016 <- candy_2016_renamed %>% 
  mutate(country = str_replace_all(country, pattern = "^[uU]+[sS]+[aA]+", "States"),
         country = str_replace_all(country, pattern = "^[uU]\\.[sS]\\.[aA]\\.", "States"),
         country = str_replace_all(country, pattern = "^[uU]\\.[sS]\\.", "States"),
         country = str_replace_all(country, pattern = "^[uU][sS]", "States"),
         country = str_replace_all(country, pattern = "[U][S][A][!]\\s[U][S][A][!]\\s[U][S][A][!]", "States"),
         # didn't work... try again below
         country = str_replace_all(country, pattern = "[sS]tates", "States"),
         country = str_replace_all(country, pattern = "[uU][sS][sS][aA]", "States"),
        # country = str_replace_all(country, pattern = "[ *][uU][nN][iI][tT][eD]\\s[sS][tT][aA][tT][eE][sS]\\s[oO][fF]\\s[aA][mM][eE][rR][iI][cC][aA][ *]", "America"),
         # united states of america still not working... 
        country = str_replace_all(country, pattern = "^[uU][nN][iI][tT][eE][dD]+\\s[sS][tT][aA][tT][eE][sS]", "States"),
        # country = str_replace_all(country, pattern = "^\\s*[uU][nN][iI][tT][eE][dD]+\\s[sS][tT][aA][tT][eE][sS]\\s*", "States"),
        #country = str_replace_all(country, pattern = "^[ ]*[uU][nN][iI][tT][eE][dD]+\\s[sS][tT][aA][tT][eE][sS][ ]*", "States"),
        country = str_replace_all(country, pattern = "^[uU][nN][iI][tT][eE][dD]+\\s[sS][tT][aA][tT][eE]", "States"),
        # the above doesn't work for all...
        country = str_replace_all(country, pattern = "[uU][nN][iI][tT][sS]\\s[sS][tT][aA][tT][eE][sS]", "States"),
        country = str_replace_all(country, pattern = "[uU][nN][iI][tT][eE][dD]\\s[sS][tT][eE][tT][eE][sS]", "States"),
        country = str_replace_all(country, pattern = "[uU][nN][iI][tT][eE][dD]\\s[sS][aA][tT][eE][sS]", "States"),
        country = str_replace_all(country, pattern = "^[mM][uU|eE][rR][iI][cC][aA]", "States"),
        country = str_replace_all(country, pattern = "^[aA][mM][eE][rR][iI][cC][aA]", "States"),
        country = str_replace_all(country, pattern = "[sS][tT][aA][tT][eE][sS][!]", "States"),
        country = str_replace_all(country, pattern = "!.*", ""),
         #the ! arguement isn't working! still get e.g. USA! USA! USA! as 
         #States! USA! USA!" 
        # country = str_replace_all(country, pattern = "^.*[!].*", "States"),
         #country = str_replace_all(country, pattern = "^[Uu]+[Ss]+[Aa]+[!{1, .}]", "America")
         # country = str_replace_all(country, pattern = "^[uU]+[sS]+[aA]+[:punct:]+", "America")
         country = str_replace_all(country, pattern = "[a-zA-Z]+ [-]+ [uU][sS][aA]", "States"), 
        # the above only changed "the best one - usa" to "the best States" 
        country = str_replace_all(country, pattern = "Cascadia", "States"),
        # one of these has changed to The republic of States
        country = str_replace_all(country, pattern = "Trumpistan", "States"),
        country = str_replace_all(country, pattern = "Sub-Canadian North America... 'Merica", "States"),
        country = str_replace_all(country, pattern = "[0-9][0-9][.][0-9]", "States"),
         country = str_replace_all(country, pattern = "the best ", ""),
         country = str_replace_all(country, pattern = " of [aA]merica", ""),
         country = str_replace_all(country, pattern = " USA USA USA", ""),
        # how do i make it USA 1 to 3 times?
         country = str_replace_all(country, pattern = " USA USA", ""),
         country = str_replace_all(country, pattern = " USA", ""),
         # the above made "not the USA or canada" into "not the or canada"
         country = str_replace_all(country, pattern = "^[uU][kK]", "United Kingdom"),
         country = str_replace_all(country, pattern = "^[uU][nN][iI][tT][eE][dD]+\\s[kK][iI][nN][dD][oO][mM]", "United Kingdom"),
         country = str_replace_all(country, pattern = "^[eE][nN][gG][lL][aA][nN][dD]", "United Kingdom"),
         country = str_replace_all(country, pattern = "^[cC]anada", "Canada")
         )

# view(country_clean_2016)

country_clean_2016 %>% 
  distinct(country)
NA
NA

country clean 2017

# there must be a way to say U and anything after, space, S and anything after

country_clean_2017 <- candy_2017_renamed %>% 
  mutate(country = str_replace_all(country, pattern = "^[uU]+[sS]+[aA]+", "States"),
         country = str_replace_all(country, pattern = "^[uU]\\.[sS]\\.[aA]\\.", "States"),
         country = str_replace_all(country, pattern = "^[uU]\\.[sS]\\.", "States"),
         country = str_replace_all(country, pattern = "^[uU][sS]", "States"),
         country = str_replace_all(country, pattern = "^[uU]\\s[sS]", "States"),
         country = str_replace_all(country, pattern = "[U][S][A][!]\\s[U][S][A][!]\\s[U][S][A][!]", "States"),
         # didn't work... try again below
         country = str_replace_all(country, pattern = "[sS]tates", "States"),
         country = str_replace_all(country, pattern = "[uU][sS][sS][aA]", "States"),
        # country = str_replace_all(country, pattern = "[ *][uU][nN][iI][tT][eD]\\s[sS][tT][aA][tT][eE][sS]\\s[oO][fF]\\s[aA][mM][eE][rR][iI][cC][aA][ *]", "America"),
         # united states of america still not working... 
        country = str_replace_all(country, pattern = "^[uU][nN][iI][tT][eE][dD]+\\s[sS][tT][a-zA-Z][tT][eE][sS]", "States"),
        country = str_replace_all(country, pattern = "^[uU][nN][iI][eE][dD]+\\s[sS][tT][a-zA-Z][tT][eE][sS]", "States"),
        # country = str_replace_all(country, pattern = "^\\s*[uU][nN][iI][tT][eE][dD]+\\s[sS][tT][aA][tT][eE][sS]\\s*", "States"),
        #country = str_replace_all(country, pattern = "^[ ]*[uU][nN][iI][tT][eE][dD]+\\s[sS][tT][aA][tT][eE][sS][ ]*", "States"),
        country = str_replace_all(country, pattern = "^[uU][nN][iI][tT][eE][a-zA-Z]+\\s[sS][tT][aA][tT|eE][eE|sS]", "States"),
        # the above doesn't work for all...
        country = str_replace_all(country, pattern = "[uU][nN][iI][tT][sS]\\s[sS][tT][aA][tT][eE][sS]", "States"),
        country = str_replace_all(country, pattern = "[uU][nN][iI][tT][eE][dD]\\s[sS][tT][eE][tT][eE][sS]", "States"),
        country = str_replace_all(country, pattern = "[uU][nN][iI][tT][eE][dD]\\s[sS][aA][tT][eE][sS]", "States"),
        country = str_replace_all(country, pattern = "^[mM][uU|eE][rR][iI][cC][aA]", "States"),
        country = str_replace_all(country, pattern = "^\\'[mM][uU|eE][rR][iI][cC][aA]", "States"),
        country = str_replace_all(country, pattern = "^[aA][mM][eE][rR][iI][cC][aA]", "States"),
        country = str_replace_all(country, pattern = "[sS][tT][aA][tT][eE][sS][!|a-zA-Z]", "States"),
        country = str_replace_all(country, pattern = "!.*", ""),
         #the ! arguement isn't working! still get e.g. USA! USA! USA! as 
         #States! USA! USA!" 
        # country = str_replace_all(country, pattern = "^.*[!].*", "States"),
         #country = str_replace_all(country, pattern = "^[Uu]+[Ss]+[Aa]+[!{1, .}]", "America")
         # country = str_replace_all(country, pattern = "^[uU]+[sS]+[aA]+[:punct:]+", "America")
         country = str_replace_all(country, pattern = "[a-zA-Z]+ [-]+ [uU][sS][aA]", "States"), 
        # the above only changed "the best one - usa" to "the best States" 
         country = str_replace_all(country, pattern = "the best ", ""),
         country = str_replace_all(country, pattern = " of [aA]merica", ""),
         country = str_replace_all(country, pattern = " USA USA USA", ""),
        # how do i make it USA 1 to 3 times?
         country = str_replace_all(country, pattern = " USA USA", ""),
         country = str_replace_all(country, pattern = " USA", ""),
         # the above made "not the USA or canada" into "not the or canada"
        country = str_replace_all(country, pattern = "StatesSAUSA", "States"),
        country = str_replace_all(country, pattern = "unhinged ", ""),
        country = str_replace_all(country, pattern = " of A", ""),
        country = str_replace_all(country, pattern = "unite States", "States"),
        country = str_replace_all(country, pattern = "The United [sS]", "S"),
        country = str_replace_all(country, pattern = "North Carolina", "States"),
        country = str_replace_all(country, pattern = "Pittsburgh", "States"),
        country = str_replace_all(country, pattern = "New York", "States"),
        country = str_replace_all(country, pattern = "Trumpistan", "States"),
        country = str_replace_all(country, pattern = "UD", "States"),
        country = str_replace_all(country, pattern = "New Jersey", "States"),
        country = str_replace_all(country, pattern = "murrika", "States"),
        country = str_replace_all(country, pattern = "Alaska", "States"),
        country = str_replace_all(country, pattern = "N. America", "States"),
        country = str_replace_all(country, pattern = "I don't know anymore", "States"),
        country = str_replace_all(country, pattern = "[3|4][0-9]", "States"),
        country = str_replace_all(country, pattern = "^[uU][.]*[kK][.]*", "United Kingdom"),
        country = str_replace_all(country, pattern = "^[uU][nN][iI][tT][eE][dD]+\\s[kK][iI][nN][dD][oO][mM]", "United Kingdom"),
        country = str_replace_all(country, pattern = "^[uU][nN][iI][tT][eE][dD]+\\s[kK][iI][nN][gG][dD][oO][mM]", "United Kingdom"),
         country = str_replace_all(country, pattern = "^[eE][nN][gG|dD][lL][aA][nN][dD]", "United Kingdom"),
        country = str_replace_all(country, pattern = "Scotland", "United Kingdom"),
         country = str_replace_all(country, pattern = "^[cC][a-zA-Z]{5}", "Canada"),
        country = str_replace_all(country, pattern = "^[cC][a-zA-Z]{5}rnia", "Canada"),
        country = str_replace_all(country, pattern = "^[cC][a-zA-Z]{5}ia", "Canada"),
        country = str_replace_all(country, pattern = "^[cC][a-zA-Z]{5}`", "Canada")
       # country = str_replace_all(country, pattern = "^Can", "Canada"), 
        # country = str_replace_all(country, pattern = "^Canae", "Canada")
         )

# view(country_2017)

country_clean_2017 %>% 
  distinct(country)

#country_2017 %>% 
#  select(country, state_or_prov) %>% 
 # filter(is.na(country))
# 4 rows have an American state under "state_or_prov" 

Join all three

bound_candy <- bind_rows(candy_2015_renamed, candy_2016_renamed, candy_2017_renamed)

bound_candy <- bound_candy %>% 
  relocate(country, .before = 4) %>% 
  relocate(state_or_prov, .before = 5) %>% 
  relocate(gender, .before = 6)


view(bound_candy)

5715 rows in bound_candy has NA

mutate(col name, .fns = ~str_remove_all(., “JUV|AD|IMM|SUB|PL*|[0-9]|“, .names = ‘fixed_{.col}’) )

AGE QUESTION

#bound_candy %>% 
 # distinct(age)

#274 different ages (chr)

#bound_candy <- bound_candy %>% 
 # mutate(age = as.double(age))
#need to remove all non-numbers and NAs first 

#age_focus <- bound_candy %>% 
 # select(age) %>% 
  #filter(age < "90") %>% 
  #arrange(desc(age))#
#view(age_focus) # still have 0.62, 142, 1e+18 etc in there...

year_pattern <- “1{4}”

col_removed_candy_2015 %>% select(timestamp) %>% str_extract(year_pattern)


  1. 0-9↩︎

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7cn0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShyZWFkeGwpDQpgYGANCg0KYGBge3J9DQpjYW5keV8yMDE1IDwtIHJlYWRfZXhjZWwoIi4uL3Jhd19kYXRhL2JvaW5nLWJvaW5nLWNhbmR5LTIwMTUueGxzeCIpDQpjYW5keV8yMDE2IDwtIHJlYWRfZXhjZWwoIi4uL3Jhd19kYXRhL2JvaW5nLWJvaW5nLWNhbmR5LTIwMTYueGxzeCIpDQpjYW5keV8yMDE3IDwtIHJlYWRfZXhjZWwoIi4uL3Jhd19kYXRhL2JvaW5nLWJvaW5nLWNhbmR5LTIwMTcueGxzeCIpDQoNCmhlcmU6OmhlcmUoKQ0KYGBgDQoNCkZyb20gZ2xpbXBzZSANCmBgYHtyfQ0KaGVhZChjYW5keV8yMDE1KQ0KZ2xpbXBzZShjYW5keV8yMDE2KQ0KZ2xpbXBzZShjYW5keV8yMDE3KQ0KYGBgDQoNCg0KDQpgYGB7cn0NCmxpYnJhcnkoamFuaXRvcikNCg0KYGBgDQoNCmBgYHtyfQ0KDQpqYW5pdG9yX2NhbmR5XzIwMTUgPC0gamFuaXRvcjo6Y2xlYW5fbmFtZXMoY2FuZHlfMjAxNSkNCmphbml0b3JfY2FuZHlfMjAxNQ0KDQpqYW5pdG9yX2NhbmR5XzIwMTYgPC0gamFuaXRvcjo6Y2xlYW5fbmFtZXMoY2FuZHlfMjAxNikNCmphbml0b3JfY2FuZHlfMjAxNg0KDQpqYW5pdG9yX2NhbmR5XzIwMTcgPC0gamFuaXRvcjo6Y2xlYW5fbmFtZXMoY2FuZHlfMjAxNykNCmphbml0b3JfY2FuZHlfMjAxNw0KYGBgDQoNCg0KanVzdCBsb29raW5nIGF0IHdobyBpcyByZXBvcnRpbmcgYmFjayBhYm91dCB0aGVzZSBvbmVzLi4uIA0KYGBge3J9DQoNCmphbml0b3JfY2FuZHlfMjAxNyAlPiUgDQogIHNlbGVjdChxM19hZ2UsIHEyX2dlbmRlciwgcTZfaW5kZXBlbmRlbnRfbV9tcywgcTZfZ3JlZW5fcGFydHlfbV9tcykNCg0KamFuaXRvcl9jYW5keV8yMDE2ICU+JSANCiAgc2VsZWN0KHlvcmtfcGVwcGVybWludF9wYXR0aWVzX2lnbm9yZSkNCiNub2JvZHkgDQpgYGANCg0KDQoyMDE1IGNsZWFuIC0gcmVtb3ZlIGNvbHVtbnMgdGhhdCBhcmVuJ3QgY2FuZHkgKHNlZSByZWFkbWUpIEkgd2VudCBmcm9tIGJvdHRvbSB0bw0KdG9wIHRvIGNoZWNrIGluZGV4IGFzIGkgd2VudA0KQWxzbyBhZGRpbmcgYSAieWVhciIgY29sdW1uIGFuZCByZW1vdmluZyAidGltZXN0YW1wIiBmb3IgdGhlIGpvaW4gKHNlZSBpZiBjYW4gd29yayANCm91dCBleHRyYWN0aW5nIHllYXIgZnJvbSB0aW1lc3RhbXAgYW5kIG1vdmluZyBvdmVyIGxhdGVyKS4gRG9pbmcgdGhpcyBhZnRlciBzbyB0aGF0IA0KY29sdW1uIGluZGV4IGlzbid0IHJ1aW5lZCANCmBgYHtyfQ0KbmFtZXMoamFuaXRvcl9jYW5keV8yMDE1KQ0KDQpjb2xfcmVtb3ZlZF9jYW5keV8yMDE1IDwtIGphbml0b3JfY2FuZHlfMjAxNSAlPiUgDQogIHNlbGVjdCgtYygxMTY6MTI0KSwgLWMoOTc6MTEzKSwgLWMoOTM6OTUpLCAtYyg5MCwgOTEpLCAtYyhwZXRlcnNvbl9icmFuZF9zaWRld2Fsa19jaGFsaywgc3BvdHRlZF9kaWNrLCBtaW50X2xlYXZlcywgam95X2pveV9taXRfaW9kaW5lLCBtaW5pYmFnc19vZl9jaGlwcywgbGFwZWxfcGlucywga2FsZV9zbW9vdGhpZSwgaHVnc19hY3R1YWxfcGh5c2ljYWxfaHVncywgaGVhdGhfYmFyLCBoZWFsdGh5X2ZydWl0LCBjcmVlcHlfcmVsaWdpb3VzX2NvbWljc19jaGlja190cmFjdHMsIGJyb2tlbl9nbG93X3N0aWNrLCBnbG93X3N0aWNrcywgZ2VuZXJpY19icmFuZF9hY2V0YW1pbm9waGVuLCBkZW50YWxfcGFyYXBoZW5hbGlhLCBjYXNoX29yX290aGVyX2Zvcm1zX29mX2xlZ2FsX3RlbmRlciwgdmlhbHNfb2ZfcHVyZV9oaWdoX2ZydWN0b3NlX2Nvcm5fc3lydXBfZm9yX21haW5fbGluaW5nX2ludG9feW91cl92ZWluLCBib3hfb19yYWlzaW5zLCB0aW1lc3RhbXApKSAlPiUgDQogIGFkZF9jb2x1bW4oeWVhciA9ICIyMDE1IiwgLmJlZm9yZSA9IDEpDQogIA0KDQpjb2xfcmVtb3ZlZF9jYW5keV8yMDE1DQojdmlldyhjb2xfcmVtb3ZlZF9jYW5keV8yMDE1KQ0KDQoNCmBgYA0KDQoyMDE1IGNsZWFuIC0gcmVuYW1pbmcgY29sdW1ucyBzbyB0aGV5IG1hdGNoIG90aGVyIHllYXJzDQpjb25zaWRlcmVkIG1lcmdpbmcgYW5vbnltb3VzIGJyb3duIGdsb2JzIHdpdGggbWFyeSBqYW5lcyAoaW4gMjAxNyBpdCBpcyAiYW5vbiANCmJyb3duLi4uIGFrYSBNYXJ5IEphbmVzIikgYnV0IGxvb2tpbmcgYXQgcmVzcG9uc2VzLCB0aGV5IGRvbid0IG1hdGNoIHVwIHNvIEknbGwgDQpsZWF2ZSBhcyBhbm9ueW1vdXNfYmxhY2tfYW5kX29yYW5nZV93cmFwcGVycy4uLg0KYGBge3J9DQpjb2xfcmVtb3ZlZF9jYW5keV8yMDE1ICU+JSANCiAgc2VsZWN0KGFub255bW91c19icm93bl9nbG9ic190aGF0X2NvbWVfaW5fYmxhY2tfYW5kX29yYW5nZV93cmFwcGVycywgbWFyeV9qYW5lcykNCg0KY2FuZHlfMjAxNV9yZW5hbWVkIDwtIGNvbF9yZW1vdmVkX2NhbmR5XzIwMTUgJT4lIA0KICByZW5hbWUoYWdlID0gaG93X29sZF9hcmVfeW91LCB0cmlja19vcl90cmVhdGluZyA9IGFyZV95b3VfZ29pbmdfYWN0dWFsbHlfZ29pbmdfdHJpY2tfb3JfdHJlYXRpbmdfeW91cnNlbGYsIGFub255bW91c19ibGFja19hbmRfb3JhbmdlX3dyYXBwZXIgPSBhbm9ueW1vdXNfYnJvd25fZ2xvYnNfdGhhdF9jb21lX2luX2JsYWNrX2FuZF9vcmFuZ2Vfd3JhcHBlcnMsIGJyYWNoX25vdF9pbmNsdWRpbmdfY2FuZHlfY29ybiA9IGJyYWNoX3Byb2R1Y3RzX25vdF9pbmNsdWRpbmdfY2FuZHlfY29ybiwgcmVzdGF1cmFudF9jYW5keSA9IGNhbmR5X3RoYXRfaXNfY2xlYXJseV9qdXN0X3RoZV9zdHVmZl9naXZlbl9vdXRfZm9yX2ZyZWVfYXRfcmVzdGF1cmFudHMsIGhlcnNoZXlzX2RhcmtfY2hvY29sYXRlID0gZGFya19jaG9jb2xhdGVfaGVyc2hleSwgZ3VtbXlfYmVhcnMgPSBndW1teV9iZWFyc19zdHJhaWdodF91cCwgaGVyc2hleXNfa2lzc2FibGVzID0gaGVyc2hleV9zX2tpc3NhYmxlcywgaGVyc2hleXNfbWlsa19jaG9jb2xhdGUgPSBoZXJzaGV5X3NfbWlsa19jaG9jb2xhdGUsIGxpY29yaWNlX2JsYWNrID0gbGljb3JpY2UsIHJlZXNlc19wZWFudXRfYnV0dGVyX2N1cHMgPSByZWVzZV9zX3BlYW51dF9idXR0ZXJfY3VwcywgdG9ibGVyb25lID0gdG9sYmVyb25lX3NvbWV0aGluZ19vcl9vdGhlciwgcGVhbnV0X21fbXMgPSBwZWFudXRfbV9tX3MsIGNoaWNrX29fc3RpY2sgPSBjaGlja19vX3N0aWNrc193ZV9kb25fdF9rbm93X3doYXRfdGhhdF9pcywgY2lyY3VzX3BlYW51dHMgPSB0aG9zZV9vZGRfbWFyc2htYWxsb3dfY2lyY3VzX3BlYW51dF90aGluZ3MsIHNlYV9zYWx0X2Nob2NvbGF0ZSA9IHNlYV9zYWx0X2ZsYXZvcmVkX3N0dWZmX3Byb2JhYmx5X2Nob2NvbGF0ZV9zaW5jZV90aGlzX2lzX3RoZV9pdF9mbGF2b3Jfb2ZfdGhlX3llYXIpDQoNCmBgYA0KDQoNCjIwMTYgY2xlYW4gLSByZW1vdmUgdW5uZWNlc3NhcnkgY29sdW1ucyAtIGJvdHRvbSB0byB0b3ANCkFsc28gYWRkaW5nIGEgeWVhciBjb2x1bW4gZm9yIHRoZSBiaW5kaW5nIG9mIHJvd3MNCmBgYHtyfQ0KY29sX3JlbW92ZWRfY2FuZHlfMjAxNiA8LSBqYW5pdG9yX2NhbmR5XzIwMTYgJT4lIA0KDQogIHNlbGVjdCgtYygxMDQsIDEwNSwgMTA3OjEyMyksIC1jKHZpY29kaW4sIHZpYWxzX29mX3B1cmVfaGlnaF9mcnVjdG9zZV9jb3JuX3N5cnVwX2Zvcl9tYWluX2xpbmluZ19pbnRvX3lvdXJfdmVpbiwgdHJhaWxfbWl4LCBzcG90dGVkX2RpY2ssIHBlcnNvbl9vZl9pbnRlcmVzdF9zZWFzb25fM19kdmRfYm94X3NldF9ub3RfaW5jbHVkaW5nX2Rpc2NfNF93aXRoX2hpbGFyaW91c19vdXR0YWtlcywgbWluaWJhZ3Nfb2ZfY2hpcHMsIGthbGVfc21vb3RoaWUsIGpveV9qb3lfbWl0X2lvZGluZSwgaHVnc19hY3R1YWxfcGh5c2ljYWxfaHVncywgaGVhdGhfYmFyLCBoZWFsdGh5X2ZydWl0LCBnbG93X3N0aWNrcywgZ2VuZXJpY19icmFuZF9hY2V0YW1pbm9waGVuLCBkZW50YWxfcGFyYXBoZW5hbGlhLCBjcmVlcHlfcmVsaWdpb3VzX2NvbWljc19jaGlja190cmFjdHMsIGNoYXJkb25uYXksIGNhc2hfb3Jfb3RoZXJfZm9ybXNfb2ZfbGVnYWxfdGVuZGVyLCBicm9rZW5fZ2xvd19zdGljaywgYm94b19yYWlzaW5zLCBib25rZXJzX3RoZV9ib2FyZF9nYW1lLCB0aW1lc3RhbXApKSAlPiUgDQogIGFkZF9jb2x1bW4oeWVhciA9ICIyMDE2IiwgLmJlZm9yZSA9IDEpDQoNCg0KYGBgDQoNCjIwMTYgLSByZW5hbWUgc28gdGhleSBtYXRjaCBvdGhlciBzaGVldHMNCmNvbnNpZGVyZWQgbWVyZ2luZyBhbm9ueW1vdXMgYnJvd24gZ2xvYnMgd2l0aCBtYXJ5IGphbmVzIChpbiAyMDE3IGl0IGlzICJhbm9uIA0KYnJvd24uLi4gYWthIE1hcnkgSmFuZXMiKSBidXQgbG9va2luZyBhdCByZXNwb25zZXMsIHRoZXkgZG9uJ3QgbWF0Y2ggdXAgc28gSSdsbCANCmxlYXZlIGFzIGFub255bW91c19ibGFja19hbmRfb3JhbmdlX3dyYXBwZXJzLi4uDQpgYGB7cn0NCg0KY29sX3JlbW92ZWRfY2FuZHlfMjAxNiAlPiUgDQogIHNlbGVjdChhbm9ueW1vdXNfYnJvd25fZ2xvYnNfdGhhdF9jb21lX2luX2JsYWNrX2FuZF9vcmFuZ2Vfd3JhcHBlcnMsIG1hcnlfamFuZXMpDQoNCmNhbmR5XzIwMTZfcmVuYW1lZCA8LSBjb2xfcmVtb3ZlZF9jYW5keV8yMDE2ICU+JSANCiAgcmVuYW1lKHRyaWNrX29yX3RyZWF0aW5nID0gYXJlX3lvdV9nb2luZ19hY3R1YWxseV9nb2luZ190cmlja19vcl90cmVhdGluZ195b3Vyc2VsZiwgZ2VuZGVyID0geW91cl9nZW5kZXIsIGFnZSA9IGhvd19vbGRfYXJlX3lvdSwgY291bnRyeSA9IHdoaWNoX2NvdW50cnlfZG9feW91X2xpdmVfaW4sIHN0YXRlX29yX3Byb3YgPSB3aGljaF9zdGF0ZV9wcm92aW5jZV9jb3VudHlfZG9feW91X2xpdmVfaW4sIGFub255bW91c19ibGFja19hbmRfb3JhbmdlX3dyYXBwZXIgPSBhbm9ueW1vdXNfYnJvd25fZ2xvYnNfdGhhdF9jb21lX2luX2JsYWNrX2FuZF9vcmFuZ2Vfd3JhcHBlcnMsIGJvbmtlcnMgPSBib25rZXJzX3RoZV9jYW5keSwgcmVzdGF1cmFudF9jYW5keSA9IGNhbmR5X3RoYXRfaXNfY2xlYXJseV9qdXN0X3RoZV9zdHVmZl9naXZlbl9vdXRfZm9yX2ZyZWVfYXRfcmVzdGF1cmFudHMsIGNoaWNrX29fc3RpY2sgPSBjaGlja19vX3N0aWNrc193ZV9kb25fdF9rbm93X3doYXRfdGhhdF9pcywgZ3VtbXlfYmVhcnMgPSBndW1teV9iZWFyc19zdHJhaWdodF91cCwgaGVyc2hleXNfbWlsa19jaG9jb2xhdGUgPSBoZXJzaGV5X3NfbWlsa19jaG9jb2xhdGUsIGxpY29yaWNlX2JsYWNrID0gbGljb3JpY2VfeWVzX2JsYWNrLCBwZWFudXRfbV9tcyA9IHBlYW51dF9tX21fcywgcGFydHlfYmFnX21fbXMgPSB0aGlyZF9wYXJ0eV9tX21zLCByZWVzZXNfcGVhbnV0X2J1dHRlcl9jdXBzID0gcmVlc2Vfc19wZWFudXRfYnV0dGVyX2N1cHMsIHNvdXJwYXRjaF9raWRzID0gc291cnBhdGNoX2tpZHNfaV9lX2Fib21pbmF0aW9uc19vZl9uYXR1cmUsIHN3ZWV0YXJ0cyA9IHN3ZWV0X3RhcnRzLCBzd2VldHVtcyA9IHN3ZWV0dW1zX2FfZnJpZW5kX3RvX2RpYWJldGVzLCBjaXJjdXNfcGVhbnV0cyA9IHRob3NlX29kZF9tYXJzaG1hbGxvd19jaXJjdXNfcGVhbnV0X3RoaW5ncywgdG9ibGVyb25lID0gdG9sYmVyb25lX3NvbWV0aGluZ19vcl9vdGhlcikNCg0KY2FuZHlfMjAxNl9yZW5hbWVkDQoNCmBgYA0KDQoNCjIwMTcgY2xlYW4gLSByZW1vdmUgdGhvc2Ugbm90IGNhbmR5IGFuZCBpbnRlcm5hbCBpZCBhcyBvdGhlcnMgZG9uJ3QgaGF2ZQ0KQWxzbyBhZGRpbmcgYSB5ZWFyIGNvbHVtbiBmb3IgdGhlIGpvaW4NCmBgYHtyfQ0KY29sX3JlbW92ZWRfY2FuZHlfMjAxNyA8LSBqYW5pdG9yX2NhbmR5XzIwMTcgJT4lICANCiAgc2VsZWN0KC1jKDEwMiwgMTA0LCAxMDUsIDEwNywgMTA4LCAxMTA6MTIwKSwgLWMocTZfc3BvdHRlZF9kaWNrLCBxNl9zYW5kd2ljaF9zaXplZF9iYWdzX2ZpbGxlZF93aXRoX2Jvb19iZXJyeV9jcnVuY2gsIHE2X3JlYWxfaG91c2V3aXZlc19vZl9vcmFuZ2VfY291bnR5X3NlYXNvbl85X2JsdWVfcmF5LCBxNl9taW5pYmFnc19vZl9jaGlwcywgcTZfYWJzdGFpbmVkX2Zyb21fbV9taW5nLCBxNl9rYWxlX3Ntb290aGllLCBxNl9qb3lfam95X21pdF9pb2RpbmUsIHE2X2h1Z3NfYWN0dWFsX3BoeXNpY2FsX2h1Z3MsIHE2X2hlYXRoX2JhciwgcTZfaGVhbHRoeV9mcnVpdCwgcTZfZ2xvd19zdGlja3MsIHE2X2dlbmVyaWNfYnJhbmRfYWNldGFtaW5vcGhlbiwgcTZfZGVudGFsX3BhcmFwaGVuYWxpYSwgcTZfY3JlZXB5X3JlbGlnaW91c19jb21pY3NfY2hpY2tfdHJhY3RzLCBxNl9jaGFyZG9ubmF5LCBxNl9jYXNoX29yX290aGVyX2Zvcm1zX29mX2xlZ2FsX3RlbmRlciwgcTZfYnJva2VuX2dsb3dfc3RpY2ssIHE2X2JveG9fcmFpc2lucywgcTZfYm9ua2Vyc190aGVfYm9hcmRfZ2FtZSwgaW50ZXJuYWxfaWQpKSAlPiUgDQogIGFkZF9jb2x1bW4oeWVhciA9ICIyMDE3IiwgLmJlZm9yZSA9IDEpDQoNCmNvbF9yZW1vdmVkX2NhbmR5XzIwMTcNCmBgYA0KDQoyMDE3IC0gcmVuYW1lIC0gZ2V0IHJpZCBvZiBxMS8yLzMvNC81LzYgYXQgdGhlIHN0YXJ0IG9mIGNvbCBuYW1lcw0KYW5kIHJlbmFtZSB0byBtYXRjaCAyMDE1IGFuZCAxNg0KDQpgYGB7cn0NCg0KY2FuZHlfMjAxN19xX3JlbW92ZWQgPC0gY29sX3JlbW92ZWRfY2FuZHlfMjAxNyAlPiUgDQogIHJlbmFtZV9hbGwofiBzdWIoIl5bYS16MC05XXsyfV8iLCAiIiwgDQogICAgICAgICAgICAgICAgICAgbWFrZS5uYW1lcyhuYW1lcyhjb2xfcmVtb3ZlZF9jYW5keV8yMDE3KSkpKQ0KDQpjYW5keV8yMDE3X3JlbmFtZWQgPC0gY2FuZHlfMjAxN19xX3JlbW92ZWQgJT4lIA0KICByZW5hbWUodHJpY2tfb3JfdHJlYXRpbmcgPSBnb2luZ19vdXQsIHN0YXRlX29yX3Byb3YgPSBzdGF0ZV9wcm92aW5jZV9jb3VudHlfZXRjLCB4MTAwX2dyYW5kX2JhciA9IGAxMDBfZ3JhbmRfYmFyYCwgbWFyeV9qYW5lcyA9IGFub255bW91c19icm93bl9nbG9ic190aGF0X2NvbWVfaW5fYmxhY2tfYW5kX29yYW5nZV93cmFwcGVyc19hX2tfYV9tYXJ5X2phbmVzLCBib25rZXJzID0gYm9ua2Vyc190aGVfY2FuZHksIHJlc3RhdXJhbnRfY2FuZHkgPSBjYW5keV90aGF0X2lzX2NsZWFybHlfanVzdF90aGVfc3R1ZmZfZ2l2ZW5fb3V0X2Zvcl9mcmVlX2F0X3Jlc3RhdXJhbnRzLCBjaGlja19vX3N0aWNrID0gY2hpY2tfb19zdGlja3Nfd2VfZG9uX3Rfa25vd193aGF0X3RoYXRfaXMsIGd1bW15X2JlYXJzID0gZ3VtbXlfYmVhcnNfc3RyYWlnaHRfdXAsIGhlcnNoZXlzX21pbGtfY2hvY29sYXRlID0gaGVyc2hleV9zX21pbGtfY2hvY29sYXRlLCBsaWNvcmljZV9ibGFjayA9IGxpY29yaWNlX3llc19ibGFjaywgcGVhbnV0X21fbXMgPSBwZWFudXRfbV9tX3MsIGdyZWVuX21fbXMgPSBncmVlbl9wYXJ0eV9tX21zLCBsb25lX21fbXMgPSBpbmRlcGVuZGVudF9tX21zLCByZWVzZXNfcGVhbnV0X2J1dHRlcl9jdXBzID0gcmVlc2Vfc19wZWFudXRfYnV0dGVyX2N1cHMsIHNvdXJwYXRjaF9raWRzID0gc291cnBhdGNoX2tpZHNfaV9lX2Fib21pbmF0aW9uc19vZl9uYXR1cmUsIHN3ZWV0YXJ0cyA9IHN3ZWV0X3RhcnRzLCBzd2VldHVtcyA9IHN3ZWV0dW1zX2FfZnJpZW5kX3RvX2RpYWJldGVzLCBjaXJjdXNfcGVhbnV0cyA9IHRob3NlX29kZF9tYXJzaG1hbGxvd19jaXJjdXNfcGVhbnV0X3RoaW5ncywgdG9ibGVyb25lID0gdG9sYmVyb25lX3NvbWV0aGluZ19vcl9vdGhlcikNCiAgDQpjYW5keV8yMDE3X3JlbmFtZWQNCmBgYA0KDQpgYGB7cn0NCnZpZXcoY2FuZHlfMjAxNV9yZW5hbWVkKQ0KdmlldyhjYW5keV8yMDE2X3JlbmFtZWQpDQp2aWV3KGNhbmR5XzIwMTdfcmVuYW1lZCkNCmBgYA0KDQoNCg0KR2V0dGluZyBhbiBpZGVhIG9mIHBlb3BsZSdzIHJlc3BvbnNlczogDQpgYGB7cn0NCg0KZGlzdGluY3QoY2FuZHlfMjAxNV9yZW5hbWVkLCBhZ2UpICMoY2hyLi4uKSAxNDYgcmVzcG9uc2VzLCBzb21lIHNpbGx5IGFuZCBzb21lIHN0cmFuZ2UNCmRpc3RpbmN0KGNhbmR5XzIwMTVfcmVuYW1lZCwgdHJpY2tfb3JfdHJlYXRpbmcpICMgeWVzIG9yIG5vIChjaHIpDQpkaXN0aW5jdChjYW5keV8yMDE1X3JlbmFtZWQsIHN0YXJidXJzdCkNCg0KDQpkaXN0aW5jdChjYW5keV8yMDE2X3JlbmFtZWQsIGFnZSkgI2NociA5OCBpbmNsIHNpbGx5L3N0cmFuZ2UNCmRpc3RpbmN0KGNhbmR5XzIwMTZfcmVuYW1lZCwgdHJpY2tfb3JfdHJlYXRpbmcpICNZZXMgTm8gKGNocikNCmRpc3RpbmN0KGNhbmR5XzIwMTZfcmVuYW1lZCwgZ2VuZGVyKSAjTWFsZSwgRmVtYWxlLCBPdGhlciwgSSdkIHJhdGhlciBub3Qgc2F5LCBOQQ0KZGlzdGluY3QoY2FuZHlfMjAxNl9yZW5hbWVkLCBjb3VudHJ5KSAjOTMgc29tZSBzaWxseSwgc29tZSBlLmcuIFVTQSwgVVMsIHVzLCB1LnMuYS4gZXRjIA0KZGlzdGluY3QoY2FuZHlfMjAxNl9yZW5hbWVkLCBzdGFyYnVyc3QpDQoNCg0KZGlzdGluY3QoY2FuZHlfMjAxN19yZW5hbWVkLCBhZ2UpICNjaHIgMTA3IGluY2wgc2lsbHkvc3RyYW5nZQ0KZGlzdGluY3QoY2FuZHlfMjAxN19yZW5hbWVkLCB0cmlja19vcl90cmVhdGluZykgI1llcyBObyBhbmQgTkEoY2hyKQ0KZGlzdGluY3QoY2FuZHlfMjAxN19yZW5hbWVkLCBnZW5kZXIpICNNYWxlLCBGZW1hbGUsIE90aGVyLCBJJ2QgcmF0aGVyIG5vdCBzYXksIE5BDQpkaXN0aW5jdChjYW5keV8yMDE3X3JlbmFtZWQsIGNvdW50cnkpICMxMTggc29tZSBzaWxseSwgc29tZSBlLmcuIFVTQSwgVVMsIHVzLCB1LnMuYS4gZXRjIA0KZGlzdGluY3QoY2FuZHlfMjAxN19yZW5hbWVkLCBzdGFyYnVyc3QpDQpgYGANCg0KDQoNCg0KDQotLS0tLS0tLS0tLS0tLS0tIENPVU5UUlkgQ0xFQU5JTkcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gDQoNCk5vdGUgdGhhdCAyMDE1ICg1NjMwIHJvd3Mgb2YgOTM0OSkgaGFzIG5vIGNvdW50cnkgZGF0YS4uLiANCg0KYGBge3J9DQpjYW5keV8yMDE2X3JlbmFtZWQgJT4lIA0KICBmaWx0ZXIoaXMubmEoY291bnRyeSkpDQojMjEgTkENCg0KY2FuZHlfMjAxN19yZW5hbWVkICU+JSANCiAgZmlsdGVyKGlzLm5hKGNvdW50cnkpKSANCiMgNjQgTkENCmBgYA0KDQpgYGB7cn0NCiNqdXN0IHRvIHNlZSB0aGF0IHRoZXJlIGFyZSB0aGUgcmlnaHQgYW1vdW50IG9mIE5BcyANCiNjb3VudHJ5X2NsZWFuaW5nIDwtIGJvdW5kX2NhbmR5ICU+JSANCiAjIHNlbGVjdChjb3VudHJ5LCBzdGF0ZV9vcl9wcm92KSAlPiUgDQogICNmaWx0ZXIoIWlzLm5hKGNvdW50cnkpKQ0KIyAzNjM0IHJvd3MgcmVtYWluIHdpdGggTkFzIGdvbmUuLi4gDQojdmlldyhjb3VudHJ5X2NsZWFuaW5nKQ0KDQojIGZpcnN0Li4uIHJlbW92ZSBwdW5jdHVhdGlvbg0KDQpgYGANCg0KDQoNCmBgYHtyfQ0KbGlicmFyeShzdHJpbmdyKQ0KYGBgDQoNCjIwMTYgDQoNCmBgYHtyfQ0KDQpjb3VudHJ5X2NsZWFuXzIwMTYgPC0gY2FuZHlfMjAxNl9yZW5hbWVkICU+JSANCiAgbXV0YXRlKGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJeW3VVXStbc1NdK1thQV0rIiwgIlN0YXRlcyIpLA0KICAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIl5bdVVdXFwuW3NTXVxcLlthQV1cXC4iLCAiU3RhdGVzIiksDQogICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXlt1VV1cXC5bc1NdXFwuIiwgIlN0YXRlcyIpLA0KICAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIl5bdVVdW3NTXSIsICJTdGF0ZXMiKSwNCiAgICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJbVV1bU11bQV1bIV1cXHNbVV1bU11bQV1bIV1cXHNbVV1bU11bQV1bIV0iLCAiU3RhdGVzIiksDQogICAgICAgICAjIGRpZG4ndCB3b3JrLi4uIHRyeSBhZ2FpbiBiZWxvdw0KICAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIltzU110YXRlcyIsICJTdGF0ZXMiKSwNCiAgICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJbdVVdW3NTXVtzU11bYUFdIiwgIlN0YXRlcyIpLA0KICAgICAgICAjIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJbICpdW3VVXVtuTl1baUldW3RUXVtlRF1cXHNbc1NdW3RUXVthQV1bdFRdW2VFXVtzU11cXHNbb09dW2ZGXVxcc1thQV1bbU1dW2VFXVtyUl1baUldW2NDXVthQV1bICpdIiwgIkFtZXJpY2EiKSwNCiAgICAgICAgICMgdW5pdGVkIHN0YXRlcyBvZiBhbWVyaWNhIHN0aWxsIG5vdCB3b3JraW5nLi4uIA0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXlt1VV1bbk5dW2lJXVt0VF1bZUVdW2REXStcXHNbc1NdW3RUXVthQV1bdFRdW2VFXVtzU10iLCAiU3RhdGVzIiksDQogICAgICAgICMgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIl5cXHMqW3VVXVtuTl1baUldW3RUXVtlRV1bZERdK1xcc1tzU11bdFRdW2FBXVt0VF1bZUVdW3NTXVxccyoiLCAiU3RhdGVzIiksDQogICAgICAgICNjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXlsgXSpbdVVdW25OXVtpSV1bdFRdW2VFXVtkRF0rXFxzW3NTXVt0VF1bYUFdW3RUXVtlRV1bc1NdWyBdKiIsICJTdGF0ZXMiKSwNCiAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIl5bdVVdW25OXVtpSV1bdFRdW2VFXVtkRF0rXFxzW3NTXVt0VF1bYUFdW3RUXVtlRV0iLCAiU3RhdGVzIiksDQogICAgICAgICMgdGhlIGFib3ZlIGRvZXNuJ3Qgd29yayBmb3IgYWxsLi4uDQogICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJbdVVdW25OXVtpSV1bdFRdW3NTXVxcc1tzU11bdFRdW2FBXVt0VF1bZUVdW3NTXSIsICJTdGF0ZXMiKSwNCiAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIlt1VV1bbk5dW2lJXVt0VF1bZUVdW2REXVxcc1tzU11bdFRdW2VFXVt0VF1bZUVdW3NTXSIsICJTdGF0ZXMiKSwNCiAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIlt1VV1bbk5dW2lJXVt0VF1bZUVdW2REXVxcc1tzU11bYUFdW3RUXVtlRV1bc1NdIiwgIlN0YXRlcyIpLA0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXlttTV1bdVV8ZUVdW3JSXVtpSV1bY0NdW2FBXSIsICJTdGF0ZXMiKSwNCiAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIl5bYUFdW21NXVtlRV1bclJdW2lJXVtjQ11bYUFdIiwgIlN0YXRlcyIpLA0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiW3NTXVt0VF1bYUFdW3RUXVtlRV1bc1NdWyFdIiwgIlN0YXRlcyIpLA0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiIS4qIiwgIiIpLA0KICAgICAgICAgI3RoZSAhIGFyZ3VlbWVudCBpc24ndCB3b3JraW5nISBzdGlsbCBnZXQgZS5nLiBVU0EhIFVTQSEgVVNBISBhcyANCiAgICAgICAgICNTdGF0ZXMhIFVTQSEgVVNBISIgDQogICAgICAgICMgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIl4uKlshXS4qIiwgIlN0YXRlcyIpLA0KICAgICAgICAgI2NvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJeW1V1XStbU3NdK1tBYV0rWyF7MSwgLn1dIiwgIkFtZXJpY2EiKQ0KICAgICAgICAgIyBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXlt1VV0rW3NTXStbYUFdK1s6cHVuY3Q6XSsiLCAiQW1lcmljYSIpDQogICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiW2EtekEtWl0rIFstXSsgW3VVXVtzU11bYUFdIiwgIlN0YXRlcyIpLCANCiAgICAgICAgIyB0aGUgYWJvdmUgb25seSBjaGFuZ2VkICJ0aGUgYmVzdCBvbmUgLSB1c2EiIHRvICJ0aGUgYmVzdCBTdGF0ZXMiIA0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiQ2FzY2FkaWEiLCAiU3RhdGVzIiksDQogICAgICAgICMgb25lIG9mIHRoZXNlIGhhcyBjaGFuZ2VkIHRvIFRoZSByZXB1YmxpYyBvZiBTdGF0ZXMNCiAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIlRydW1waXN0YW4iLCAiU3RhdGVzIiksDQogICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJTdWItQ2FuYWRpYW4gTm9ydGggQW1lcmljYS4uLiAnTWVyaWNhIiwgIlN0YXRlcyIpLA0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiWzAtOV1bMC05XVsuXVswLTldIiwgIlN0YXRlcyIpLA0KICAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gInRoZSBiZXN0ICIsICIiKSwNCiAgICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICIgb2YgW2FBXW1lcmljYSIsICIiKSwNCiAgICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICIgVVNBIFVTQSBVU0EiLCAiIiksDQogICAgICAgICMgaG93IGRvIGkgbWFrZSBpdCBVU0EgMSB0byAzIHRpbWVzPw0KICAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIiBVU0EgVVNBIiwgIiIpLA0KICAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIiBVU0EiLCAiIiksDQogICAgICAgICAjIHRoZSBhYm92ZSBtYWRlICJub3QgdGhlIFVTQSBvciBjYW5hZGEiIGludG8gIm5vdCB0aGUgb3IgY2FuYWRhIg0KICAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIl5bdVVdW2tLXSIsICJVbml0ZWQgS2luZ2RvbSIpLA0KICAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIl5bdVVdW25OXVtpSV1bdFRdW2VFXVtkRF0rXFxzW2tLXVtpSV1bbk5dW2REXVtvT11bbU1dIiwgIlVuaXRlZCBLaW5nZG9tIiksDQogICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXltlRV1bbk5dW2dHXVtsTF1bYUFdW25OXVtkRF0iLCAiVW5pdGVkIEtpbmdkb20iKSwNCiAgICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJeW2NDXWFuYWRhIiwgIkNhbmFkYSIpDQogICAgICAgICApDQoNCiMgdmlldyhjb3VudHJ5X2NsZWFuXzIwMTYpDQoNCmNvdW50cnlfY2xlYW5fMjAxNiAlPiUgDQogIGRpc3RpbmN0KGNvdW50cnkpDQoNCg0KYGBgDQoNCmNvdW50cnkgY2xlYW4gMjAxNyANCmBgYHtyfQ0KIyB0aGVyZSBtdXN0IGJlIGEgd2F5IHRvIHNheSBVIGFuZCBhbnl0aGluZyBhZnRlciwgc3BhY2UsIFMgYW5kIGFueXRoaW5nIGFmdGVyDQoNCmNvdW50cnlfY2xlYW5fMjAxNyA8LSBjYW5keV8yMDE3X3JlbmFtZWQgJT4lIA0KICBtdXRhdGUoY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIl5bdVVdK1tzU10rW2FBXSsiLCAiU3RhdGVzIiksDQogICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXlt1VV1cXC5bc1NdXFwuW2FBXVxcLiIsICJTdGF0ZXMiKSwNCiAgICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJeW3VVXVxcLltzU11cXC4iLCAiU3RhdGVzIiksDQogICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXlt1VV1bc1NdIiwgIlN0YXRlcyIpLA0KICAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIl5bdVVdXFxzW3NTXSIsICJTdGF0ZXMiKSwNCiAgICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJbVV1bU11bQV1bIV1cXHNbVV1bU11bQV1bIV1cXHNbVV1bU11bQV1bIV0iLCAiU3RhdGVzIiksDQogICAgICAgICAjIGRpZG4ndCB3b3JrLi4uIHRyeSBhZ2FpbiBiZWxvdw0KICAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIltzU110YXRlcyIsICJTdGF0ZXMiKSwNCiAgICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJbdVVdW3NTXVtzU11bYUFdIiwgIlN0YXRlcyIpLA0KICAgICAgICAjIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJbICpdW3VVXVtuTl1baUldW3RUXVtlRF1cXHNbc1NdW3RUXVthQV1bdFRdW2VFXVtzU11cXHNbb09dW2ZGXVxcc1thQV1bbU1dW2VFXVtyUl1baUldW2NDXVthQV1bICpdIiwgIkFtZXJpY2EiKSwNCiAgICAgICAgICMgdW5pdGVkIHN0YXRlcyBvZiBhbWVyaWNhIHN0aWxsIG5vdCB3b3JraW5nLi4uIA0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXlt1VV1bbk5dW2lJXVt0VF1bZUVdW2REXStcXHNbc1NdW3RUXVthLXpBLVpdW3RUXVtlRV1bc1NdIiwgIlN0YXRlcyIpLA0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXlt1VV1bbk5dW2lJXVtlRV1bZERdK1xcc1tzU11bdFRdW2EtekEtWl1bdFRdW2VFXVtzU10iLCAiU3RhdGVzIiksDQogICAgICAgICMgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIl5cXHMqW3VVXVtuTl1baUldW3RUXVtlRV1bZERdK1xcc1tzU11bdFRdW2FBXVt0VF1bZUVdW3NTXVxccyoiLCAiU3RhdGVzIiksDQogICAgICAgICNjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXlsgXSpbdVVdW25OXVtpSV1bdFRdW2VFXVtkRF0rXFxzW3NTXVt0VF1bYUFdW3RUXVtlRV1bc1NdWyBdKiIsICJTdGF0ZXMiKSwNCiAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIl5bdVVdW25OXVtpSV1bdFRdW2VFXVthLXpBLVpdK1xcc1tzU11bdFRdW2FBXVt0VHxlRV1bZUV8c1NdIiwgIlN0YXRlcyIpLA0KICAgICAgICAjIHRoZSBhYm92ZSBkb2Vzbid0IHdvcmsgZm9yIGFsbC4uLg0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiW3VVXVtuTl1baUldW3RUXVtzU11cXHNbc1NdW3RUXVthQV1bdFRdW2VFXVtzU10iLCAiU3RhdGVzIiksDQogICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJbdVVdW25OXVtpSV1bdFRdW2VFXVtkRF1cXHNbc1NdW3RUXVtlRV1bdFRdW2VFXVtzU10iLCAiU3RhdGVzIiksDQogICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJbdVVdW25OXVtpSV1bdFRdW2VFXVtkRF1cXHNbc1NdW2FBXVt0VF1bZUVdW3NTXSIsICJTdGF0ZXMiKSwNCiAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIl5bbU1dW3VVfGVFXVtyUl1baUldW2NDXVthQV0iLCAiU3RhdGVzIiksDQogICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJeXFwnW21NXVt1VXxlRV1bclJdW2lJXVtjQ11bYUFdIiwgIlN0YXRlcyIpLA0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXlthQV1bbU1dW2VFXVtyUl1baUldW2NDXVthQV0iLCAiU3RhdGVzIiksDQogICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJbc1NdW3RUXVthQV1bdFRdW2VFXVtzU11bIXxhLXpBLVpdIiwgIlN0YXRlcyIpLA0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiIS4qIiwgIiIpLA0KICAgICAgICAgI3RoZSAhIGFyZ3VlbWVudCBpc24ndCB3b3JraW5nISBzdGlsbCBnZXQgZS5nLiBVU0EhIFVTQSEgVVNBISBhcyANCiAgICAgICAgICNTdGF0ZXMhIFVTQSEgVVNBISIgDQogICAgICAgICMgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIl4uKlshXS4qIiwgIlN0YXRlcyIpLA0KICAgICAgICAgI2NvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJeW1V1XStbU3NdK1tBYV0rWyF7MSwgLn1dIiwgIkFtZXJpY2EiKQ0KICAgICAgICAgIyBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXlt1VV0rW3NTXStbYUFdK1s6cHVuY3Q6XSsiLCAiQW1lcmljYSIpDQogICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiW2EtekEtWl0rIFstXSsgW3VVXVtzU11bYUFdIiwgIlN0YXRlcyIpLCANCiAgICAgICAgIyB0aGUgYWJvdmUgb25seSBjaGFuZ2VkICJ0aGUgYmVzdCBvbmUgLSB1c2EiIHRvICJ0aGUgYmVzdCBTdGF0ZXMiIA0KICAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gInRoZSBiZXN0ICIsICIiKSwNCiAgICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICIgb2YgW2FBXW1lcmljYSIsICIiKSwNCiAgICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICIgVVNBIFVTQSBVU0EiLCAiIiksDQogICAgICAgICMgaG93IGRvIGkgbWFrZSBpdCBVU0EgMSB0byAzIHRpbWVzPw0KICAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIiBVU0EgVVNBIiwgIiIpLA0KICAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIiBVU0EiLCAiIiksDQogICAgICAgICAjIHRoZSBhYm92ZSBtYWRlICJub3QgdGhlIFVTQSBvciBjYW5hZGEiIGludG8gIm5vdCB0aGUgb3IgY2FuYWRhIg0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiU3RhdGVzU0FVU0EiLCAiU3RhdGVzIiksDQogICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJ1bmhpbmdlZCAiLCAiIiksDQogICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICIgb2YgQSIsICIiKSwNCiAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gInVuaXRlIFN0YXRlcyIsICJTdGF0ZXMiKSwNCiAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIlRoZSBVbml0ZWQgW3NTXSIsICJTIiksDQogICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJOb3J0aCBDYXJvbGluYSIsICJTdGF0ZXMiKSwNCiAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIlBpdHRzYnVyZ2giLCAiU3RhdGVzIiksDQogICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJOZXcgWW9yayIsICJTdGF0ZXMiKSwNCiAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIlRydW1waXN0YW4iLCAiU3RhdGVzIiksDQogICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJVRCIsICJTdGF0ZXMiKSwNCiAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIk5ldyBKZXJzZXkiLCAiU3RhdGVzIiksDQogICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJtdXJyaWthIiwgIlN0YXRlcyIpLA0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiQWxhc2thIiwgIlN0YXRlcyIpLA0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiTi4gQW1lcmljYSIsICJTdGF0ZXMiKSwNCiAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIkkgZG9uJ3Qga25vdyBhbnltb3JlIiwgIlN0YXRlcyIpLA0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiWzN8NF1bMC05XSIsICJTdGF0ZXMiKSwNCiAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIl5bdVVdWy5dKltrS11bLl0qIiwgIlVuaXRlZCBLaW5nZG9tIiksDQogICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJeW3VVXVtuTl1baUldW3RUXVtlRV1bZERdK1xcc1trS11baUldW25OXVtkRF1bb09dW21NXSIsICJVbml0ZWQgS2luZ2RvbSIpLA0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXlt1VV1bbk5dW2lJXVt0VF1bZUVdW2REXStcXHNba0tdW2lJXVtuTl1bZ0ddW2REXVtvT11bbU1dIiwgIlVuaXRlZCBLaW5nZG9tIiksDQogICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXltlRV1bbk5dW2dHfGREXVtsTF1bYUFdW25OXVtkRF0iLCAiVW5pdGVkIEtpbmdkb20iKSwNCiAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIlNjb3RsYW5kIiwgIlVuaXRlZCBLaW5nZG9tIiksDQogICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXltjQ11bYS16QS1aXXs1fSIsICJDYW5hZGEiKSwNCiAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCBwYXR0ZXJuID0gIl5bY0NdW2EtekEtWl17NX1ybmlhIiwgIkNhbmFkYSIpLA0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXltjQ11bYS16QS1aXXs1fWlhIiwgIkNhbmFkYSIpLA0KICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXltjQ11bYS16QS1aXXs1fWAiLCAiQ2FuYWRhIikNCiAgICAgICAjIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgcGF0dGVybiA9ICJeQ2FuIiwgIkNhbmFkYSIpLCANCiAgICAgICAgIyBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksIHBhdHRlcm4gPSAiXkNhbmFlIiwgIkNhbmFkYSIpDQogICAgICAgICApDQoNCiMgdmlldyhjb3VudHJ5XzIwMTcpDQoNCmNvdW50cnlfY2xlYW5fMjAxNyAlPiUgDQogIGRpc3RpbmN0KGNvdW50cnkpDQoNCiNjb3VudHJ5XzIwMTcgJT4lIA0KIyAgc2VsZWN0KGNvdW50cnksIHN0YXRlX29yX3Byb3YpICU+JSANCiAjIGZpbHRlcihpcy5uYShjb3VudHJ5KSkNCiMgNCByb3dzIGhhdmUgYW4gQW1lcmljYW4gc3RhdGUgdW5kZXIgInN0YXRlX29yX3Byb3YiIA0KYGBgDQoNCg0KDQpKb2luIGFsbCB0aHJlZSANCmBgYHtyfQ0KYm91bmRfY2FuZHkgPC0gYmluZF9yb3dzKGNhbmR5XzIwMTVfcmVuYW1lZCwgY2FuZHlfMjAxNl9yZW5hbWVkLCBjYW5keV8yMDE3X3JlbmFtZWQpDQoNCmJvdW5kX2NhbmR5IDwtIGJvdW5kX2NhbmR5ICU+JSANCiAgcmVsb2NhdGUoY291bnRyeSwgLmJlZm9yZSA9IDQpICU+JSANCiAgcmVsb2NhdGUoc3RhdGVfb3JfcHJvdiwgLmJlZm9yZSA9IDUpICU+JSANCiAgcmVsb2NhdGUoZ2VuZGVyLCAuYmVmb3JlID0gNikNCg0KDQp2aWV3KGJvdW5kX2NhbmR5KQ0KYGBgDQoNCg0KDQo1NzE1IHJvd3MgaW4gYm91bmRfY2FuZHkgaGFzIE5BIA0KDQpgYGB7cn0NCg0KDQoNCmJvdW5kX2NhbmR5ICU+JSANCiAgZmlsdGVyKGlzLm5hKGNvdW50cnkpKQ0KIyA1NzE1IHJvd3MgaW4gY291bnRyeSBhcmUgTkENCmBgYA0KDQoNCg0KDQoNCm11dGF0ZShjb2wgbmFtZSwgDQogICAgICAuZm5zID0gfnN0cl9yZW1vdmVfYWxsKC4sIA0KICAgICAgIkpVVnxBRHxJTU18U1VCfFBMKnxbMC05XXwiLCANCiAgICAgIC5uYW1lcyA9ICdmaXhlZF97LmNvbH0nKQ0KICAgICAgKQ0KICAgICAgDQogICAgICANCg0KQUdFIFFVRVNUSU9OIA0KYGBge3J9DQojYm91bmRfY2FuZHkgJT4lIA0KICMgZGlzdGluY3QoYWdlKQ0KDQojMjc0IGRpZmZlcmVudCBhZ2VzIChjaHIpDQoNCiNib3VuZF9jYW5keSA8LSBib3VuZF9jYW5keSAlPiUgDQogIyBtdXRhdGUoYWdlID0gYXMuZG91YmxlKGFnZSkpDQojbmVlZCB0byByZW1vdmUgYWxsIG5vbi1udW1iZXJzIGFuZCBOQXMgZmlyc3QgDQoNCiNhZ2VfZm9jdXMgPC0gYm91bmRfY2FuZHkgJT4lIA0KICMgc2VsZWN0KGFnZSkgJT4lIA0KICAjZmlsdGVyKGFnZSA8ICI5MCIpICU+JSANCiAgI2FycmFuZ2UoZGVzYyhhZ2UpKSMNCiN2aWV3KGFnZV9mb2N1cykgIyBzdGlsbCBoYXZlIDAuNjIsIDE0MiwgMWUrMTggZXRjIGluIHRoZXJlLi4uDQoNCmBgYA0KDQoNCg0KeWVhcl9wYXR0ZXJuIDwtICJeWzAtOV17NH0iDQoNCmNvbF9yZW1vdmVkX2NhbmR5XzIwMTUgJT4lIA0KICBzZWxlY3QodGltZXN0YW1wKSAlPiUgDQogIHN0cl9leHRyYWN0KHllYXJfcGF0dGVybik=